minlog

1차원 배열

2023.11.12·조회수:
0
thumbnail
 

1차원 배열

배열 : 배열은 같은 데이터 타입의 데이터(Data)를 여러 개 저장할 수 있는 저장공간이다.

  • 배열 또한 메모리를 생성할 때 new 키워드를 사용한다.
  1. 이를 통해 배열은 stack이 아닌 heap 영역에 저장된다는 사실을 짐작할 수 있다.
  2. 배열의 이름은 주소값을 저장하는 참조변수다. 즉, “heap 영역에 저장된” 배열의 주소값이 저장된다. 우리는 이 주소값을 통해 배열에 접근한다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


class Program
{
    static void Main(string[] args)
    {
        // 1. 주소를 기억할 변수
        // 2. 메모리 할당
        int[] 아파트 = new int[10];
        // int[0] = ?
        // int[1] = ?
        // ...

        for(int i = 0; i<10; i++)
        {
            Console.WriteLine("아파트["+i+"] = " + 아파트[i]);
        }
    }
}

결과

아파트[0] = 0

아파트[1] = 0 아파트[2] = 0 아파트[3] = 0 아파트[4] = 0 아파트[5] = 0 아파트[6] = 0 아파트[7] = 0 아파트[8] = 0 아파트[9] = 0

자동으로 배열의 값이 0으로 초기화 된다.


배열에 값을 넣는 법

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


class Program
{
    static void Main(string[] args)
    {
        int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        for (int i = 0; i<10; i++)
        {
            Console.WriteLine("아파트["+i+"] = " + 아파트[i]);
        }
    }
}

결과

아파트[0] = 0

아파트[1] = 1 아파트[2] = 2 아파트[3] = 3 아파트[4] = 4 아파트[5] = 5 아파트[6] = 6 아파트[7] = 7 아파트[8] = 8 아파트[9] = 9


배열의 참조

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


class Program
{
    static void Main(string[] args)
    {
        int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        int[] 메모1 = 아파트; // 참조값 값복사
        int[] 메모2 = 메모1; // 참조값 값복사

        for (int i = 0; i<10; i++)
        {
            Console.WriteLine("메모1["+i+"] = " + 메모1[i]);
        }
    }
}

결과

메모1[0] = 0

메모1[1] = 1 메모1[2] = 2 메모1[3] = 3 메모1[4] = 4 메모1[5] = 5 메모1[6] = 6 메모1[7] = 7 메모1[8] = 8 메모1[9] = 9


메모리를 할당하는 다른 방법

int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

int[] 아파트 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 11개의 공간만 할당